package com.datqsoft;

import com.daqsoft.dto.PdfFontTypeEnum;
import com.itextpdf.io.font.PdfEncodings;
import com.itextpdf.io.font.TrueTypeFont;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.color.DeviceRgb;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.Style;
import com.itextpdf.layout.element.AreaBreak;
import com.itextpdf.layout.element.Image;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.property.AreaBreakType;
import com.itextpdf.layout.property.HorizontalAlignment;
import com.itextpdf.layout.property.Property;
import com.itextpdf.layout.property.TextAlignment;
import org.junit.Test;

import java.io.File;
import java.io.IOException;

/**
 * @author 周麟东 on 9:51
 */
public class App {

    private static final String FILE_DIR = "F:\\PMIS\\target\\";

    @Test
    public void pdfTest() throws Exception {
        File file = new File(FILE_DIR + "text.pdf");
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
        Document document = new Document(pdfDoc);
        document.setFont(font(PdfFontTypeEnum.YAHEI));
        Image image = new Image(ImageDataFactory.create("F:\\nginx-1.13.1\\html\\resources\\images\\logo.png")).setHeight(200).setHorizontalAlignment(HorizontalAlignment.CENTER);
        document.add(image);
        Paragraph cn = new Paragraph("中科大旗软件有限公司\n\n\n\n\n").setFontSize(32).setTextAlignment(TextAlignment.CENTER);
        document.add(cn);
        cn = new Paragraph("绥阳项目简介\n\n\n").setFontSize(24).setTextAlignment(TextAlignment.CENTER);
        document.add(cn);
        cn = new Paragraph("项目经理 ： 王一江").setFontSize(20).setTextAlignment(TextAlignment.CENTER);
        document.add(cn);
        //增加空白页
        document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));

        Style bold = new Style();//字体加粗 用于标题
        bold.setProperty(Property.BOLD_SIMULATION,true);

        cn = new Paragraph("一、 项目基础信息").setFontSize(16).addStyle(bold);
        document.add(cn);
        Style label = new Style(); // 字体颜色 文本
        label.setFontColor(new DeviceRgb(124,124,124));
        label.setMarginLeft(10);
        cn = new Paragraph("项目名称 ： 绥阳县智慧旅游服务建设项目").setFontSize(14).addStyle(label);
        document.add(cn);
        cn = new Paragraph("项目时间 ： 2017年08月04日 至 2017年09月30日").setFontSize(14).addStyle(label);
        document.add(cn);
        cn = new Paragraph("项目编号 ： 贵B - 100005").setFontSize(14).addStyle(label);
        document.add(cn);
        cn = new Paragraph("审核类型 ： 质量外审").setFontSize(14).addStyle(label);
        document.add(cn);
        cn = new Paragraph("项目简介 ： 简介").setFontSize(14).addStyle(label);
        document.add(cn);
        document.close();
    }

    public PdfFont font(PdfFontTypeEnum typeEnum) {
        try {
            if (typeEnum == PdfFontTypeEnum.LIGHT) {
                TrueTypeFont font = new TrueTypeFont("F:\\PMIS\\src\\main\\resources\\FZLTCXHJW.ttf");
                return PdfFontFactory.createFont(font, PdfEncodings.IDENTITY_H, false);
            }else if(typeEnum == PdfFontTypeEnum.YAHEI){
                TrueTypeFont font = new TrueTypeFont("F:\\PMIS\\src\\main\\resources\\MicrosoftYaHeiLight.ttf");
                return PdfFontFactory.createFont(font, PdfEncodings.IDENTITY_H, false);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

}
